<?php
/**
 * Lớp model News
 * @author Mr.UBKey
 *
 */
#[Table('news')]
#[PrimaryKey('id')]
class Areas_News_Models_News extends XPHP_Model
{
    public $id;
    #[Label('Tiêu đề')]
    #[Required(message = 'Tiêu đề là bắt buộc nhập')]
    #[MaxLength(255, message = 'Tiêu đề có tối đa 255 kí tự')]
    public $title;
    #[Label('Mô tả ngắn')]
    #[MaxLength(500, message = 'Tiêu đề có tối đa 500 kí tự')]
    public $headline;
    #[Label('Nội dung')]
    public $content;
    #[Label('Ngày đăng')]
    public $date_create;
    #[Label('Ảnh')]
    public $avatar;
    #[Label('Danh mục tin')]
    public $category_id;
    
    public $lang_id;
    /**
     * Thêm tin tức vào database
     */
    public function insert ()
    {
        $data = array();
        $data['title'] = $this->title;
        $data['headline'] = $this->headline;
        $data['content'] = $this->content;
        $data['date_create'] = $this->date_create;
        $data['avatar'] = $this->avatar;
        $data['category_id'] = $this->category_id;
        $data['lang_id'] = $_SESSION['lang_id'];
        return $this->db->insert($data);
    }
    /**
     * Lấy ra danh sachs tin tức
     * @param array $options Điều kiện
     */
    public function getNews ($options = array())
    {
        //Set where
        foreach ($options as $field => $value) {
            $this->db->where($field, $value);
        }
        //Order
        $this->db->order_by('date_create', 'desc');
        return $this->db->get()->result();
    }
    /**
     * Xóa tin tức
     */
    public function delete ()
    {
        return $this->db->where('id', $this->id)->delete();
    }
    /**
     * Cập nhật tin tức
     */
    public function update ()
    {
        $data = array();
        $data['title'] = $this->title;
        $data['content'] = $this->content;
        $data['headline'] = $this->headline;
        $data['avatar'] = $this->avatar;
        $data['category_id'] = $this->category_id;
        return $this->db->where('id', $this->id)->update($data);
    }
    /**
     * Lấy ra danh sách tin tức mới nhất
     * @param int $num Số tin tức
     */
    public function getLastestNews ($num = 5)
    {
        return $this->db->where('lang_id', $_SESSION['lang_id'])
        	->order_by('date_create', 'DESC')
            ->limit($num)
            ->get()
            ->result();
    }
}